SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

/****** Objeto:  procedimiento almacenado dbo.wp_verifica_campos    fecha de la secuencia de comandos: 02/11/2005 18:20:22 ******/
CREATE PROCEDURE dbo.wp_verifica_campos AS

/* PROCEDIMIENTO: wp_verifica_campos
   AUTOR	: OV
   CREACION	: 06/11/2002
   DESCRIPCION	: Verifica los campos de las tablas de usuario para ver si
		  su tipo de datos corresponde con los preestablecidos. */

--Se utilizan las siguientes tablas del sistema:
--SELECT * FROM systypes
--SELECT * FROM sysobjects
--SELECT * FROM systypes

/* Campos de usuario que no tienen tipos predefinidos */
SELECT syscolumns.name, sysobjects.name, syscolumns.xusertype, syscolumns.length, syscolumns.prec,
	sysobjects.xtype, syscolumns.id
FROM syscolumns JOIN sysobjects ON syscolumns.id = sysobjects.id
WHERE SUBSTRING(syscolumns.name,3,1)='_'  AND sysobjects.xtype='U'
	AND NOT EXISTS(SELECT * FROM systypes WHERE syscolumns.xusertype = systypes.xusertype AND LEFT(systypes.name,1)='_')
ORDER BY syscolumns.name, sysobjects.name

/* Campos de usuario que tienen tipos predefinidos modificados */
SELECT syscolumns.name, sysobjects.name, syscolumns.xusertype, syscolumns.length, syscolumns.prec,
	sysobjects.xtype, syscolumns.id
FROM syscolumns JOIN sysobjects ON syscolumns.id = sysobjects.id
WHERE SUBSTRING(syscolumns.name,3,1)='_'  AND sysobjects.xtype='U'
	AND EXISTS(SELECT * FROM systypes WHERE syscolumns.xusertype = systypes.xusertype AND LEFT(systypes.name,1)='_'
			AND systypes.length<>syscolumns.length)
ORDER BY syscolumns.name, sysobjects.name
GO
